<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1> 函数创建 </h1>
     3种   +  箭头

 <script>
  let stu = {
     name: 'temo',
     age: 18,
     study: ()=>{
        console.log( this );
        alert('好好学习')
     }
  }
 
//   console.log(  stu.name );
//   stu.study()

//  function add(a='没值',b=0){
//     console.log( a , b);
//     alert( a + b );
//  }

//  add(10,9);

// 类
let Person = function(name){
    //属性
    this.name = name;
    //方法
    this.hi =function(){
        alert('我的名字是'+ this.name );
    }

}

Person.prototype.age = 0 ;
//新增方法
Person.prototype.eat = function(){
    alert('我会吃饭');
}

// 对象？？？
// let a = new Person('提莫');
// //a.age = 2;
// console.log( a.age );
// a.hi();
// a.eat();


function test(a,b){
    alert(a + b);
    console.log( this);  // this = window
}

//test(1,2);
// 如何改变 test() this指向
// let obj = {name:'temo' , age:18};
// test.apply(obj,[3,4]);

//支持任意多个参数
// function showall(){
//     for(let i=0;i<arguments.length;i++){
//         console.log( arguments[i]);
//     }
// }

// showall(1,5,'temo','hello');


//匿名函数自调用
// (function(){
//     alert('我是函数');
// })();

// 函数递归调用 0,1,1,2,3,5,8,13
//f(7)=f(5)+f(6)
function fabo(n){
      if(n==0){
         return 0;
      }else if(n==1){
          return 1;
      }else {
          return fabo(n-1)+ fabo(n-2);
      }
}
console.log( fabo(7) );

 </script>
</body>
</html>